/**
 * User Model  用户的基本信息表
 *
 */
module.exports = app => {
	const { STRING, INTEGER, CHAR, Sequelize } = app.Sequelize;
	const User = app.model.define(
		'user',
		{
			id: {
				type: INTEGER,
				primaryKey: true,
				autoIncrement: true
			},
			//用户名称
			username: {
				type: STRING,
				notNull: true
			},
			//用户昵称
			nickname: {
				type: STRING,
				notNull: true
			},
			// 头像
			avatar: {
				type: STRING
			},
			// 用户类型(*, 0=员工, C=客户, P=合作伙伴, T=临时用户, A=管理员)
			userType: {
				type: INTEGER,
				notNull: true
			},
			// 证件类型(*, 0=身份证, 1=护照, 2=军官证)
			IDType: {
				type: INTEGER
			},
			// 证件号码(登录识别)
			IDNO: {
				type: STRING(30)
			},
			// 联系手机(登录识别,仅能有一个号码)
			cell: {
				type: STRING(30)
			},
			//安全问题1
			secQuestion1: {
				type: STRING(100)
			},
			//安全问题2
			secQuestion2: {
				type: STRING(100)
			},
			//安全问题3
			secQuestion3: {
				type: STRING(100)
			},
			//加密安全答案1
			secAnswer1: {
				type: STRING(100)
			},
			//加密安全答案2
			secAnswer2: {
				type: STRING(100)
			},
			//加密安全答案3
			secAnswer3: {
				type: STRING(100)
			},
			//安全密码, 成为正式用户后必须填加
			secPassword: {
				type: STRING(30)
			},
			//状态(*, 0=正常, C=禁用)
			status: {
				type: INTEGER,
				defaultValue: 0
			},
			//记录建立时间
			createTime: {
				type: Sequelize.DATE,
				defaultValue: Sequelize.NOW
			},
			//最后修改时间
			modifyTime: {
				type: Sequelize.DATE,
				defaultValue: Sequelize.NOW
			},
			//禁用日期
			closeDate: {
				type: Sequelize.DATE
			},
			//登录次数
			loginNum: {
				type: INTEGER,
				defaultValue: 0
			},
			//最后登录时间
			lastLoginTime: {
				type: Sequelize.DATE
			},
			//备注
			remark: {
				type: Sequelize.TEXT
			}
		},
		{
			timestamps: false, //去除createAt updateAt
			freezeTableName: true //使用自定义表名
		}
	);
	return User;
};
